#字典 -- 键值对的数据结构
#创建字典
#利用 {} 来创建空字典
d = {}
print(type(d))
#利用 dict 关键字来创建字典
d = dict()
print(type(d))

#在创建字典时，可以为其初始化
d = {
    1:'one',
    "hello":123,
    1.3:"one point three"
}

#利用 in 关键字判断某个 key 是否在字典中
print(1 in d)
print(123 in d)
print("world" not in d)

#利用 [key] 来获取 value，key 不存在会抛出异常
print(d[1])
print(d["hello"])
print(d[1.3])
# print(d[123])

#利用 [] 来新增元素和修改 value，key 存在为修改，key 不存在为新建
print(d)
d["world"] = "hello"
d[10] = "ten"
d[1] = "theone"
print(d)

#利用 pop 方法来删除key-value，参数为 "key"
d.pop("world")
print(d)

#利用 for 循环来遍历字典
for key in d:
    print(f"{key}:{d[key]}", end = " ")
print()

#还可以利用 keys，values 来获取全部的键和值，使用 items 获取全部的键值对
for key in d.keys():
    print(key, d[key], end = " ")
print()

for value in d.values():
    print(value, end = " ")
print()

for key,value in d.items():
    print(f"{key}:{value}", end = " ")
print()

#利用 hash 函数可以获得值的哈希值
#下面的类型全部可哈希，都可作为字典的 key
print(hash("hello"))
print(hash(1.3))
print(hash(1000))
print(hash((1,2,3)))
print(hash(True))
#列表和字典为不可哈希类型
# print(hash([1,2,3]))
# print(hash({1:123, 2:456}))




